As is known by one skilled in the art, data processing systems or subsystems, such as microprocessors, comprise elements dedicated to (a) chosen (elementary) task(s) or function(s), for instance a processor and its set of memories. At design level, the subsystem is called a top module; it generally comprises some glue logic and one or more hard macro (devices). A hard macro (device) is an element whose physical design is fixed and which must be used in a top module as it is. A hard macro comprises a processing core provided with at least one input terminal (or pin) adapted to feed it with input data to be processed and at least one output terminal (or pin) adapted to deliver output data processed by the core.
A hard macro device being an elementary brick, its core input and output terminals are always located at fixed locations. Certain input and output data being time critical, it is important to optimize the connection between the concerned terminals inside the subsystem (or top module) in order not to introduce high propagation delays which would penalize the next data processes and thus lower the subsystem's performances.
Such an optimization is possible when a hard macro device and its top module are developed (or designed) at the same time. But, when a hard macro device and its top module are developed (or designed) independently, their connections are rarely optimized (for instance a core input terminal may be located on a core side which is opposite to the area comprising the terminal to which it has to be connected). In this case (i.e when the hard macro device and top module are developed independently), one usually introduces feedthroughs in the hard macro layout to allow some flexibility. A feedthrough is a routed path through a hard macro, which allows going from a non functional additional input terminal on one side of the hard macro to a non functional additional output terminal on another side of the hard macro. Using this feedthrough allows for instance connecting one core output on one side of the hard macro to a core input terminal of the top module located near the opposite side of the hard macro without routing around the hard macro, which leads to a longer routed connection, and to further delay.
However, the available feedthroughs may remain (?) too long.
Moreover, a lot of care must be taken during the routing phase of the feedthroughs to avoid potential crosstalk. Indeed, the arrival time at a feedthrough input is difficult or impossible to know because it depends on the terminal to which it is connected and on the load of the external wiring used for connecting the hard macro device to the feedthrough terminals. Therefore, crosstalk violation analysis and suppression may be difficult and inaccurate, and often affect the timing model of the hard macro device, and may induce problem(s) in the data flow at a later processing stage.